package com.lesama.inner;

/*
* 匿名内部类：本质上是一个特殊的局部内部类
* 定义格式： new 类名/接口名() {}
*       new 类名 -> 继承这个类
*       new 接口名 -> 实现这个接口
* 好处： 在某些需要传递接口参数的情况下可以简化代码，比如按钮的监听事件
* */

public class AnonInnerTest1 {
    public static void main(String[] args) {
        print(new InterImpl()); // 若不适用匿名内部类，则需要先定义实现类，在传递实现类对象
        System.out.println("---------------------");
        // 若使用匿名内部类，则不需要这么繁琐
        print(new Inter() {
            @Override
            public void method() {
                System.out.println("匿名内部类对象print");
            }
        });
    }
    public static void print(Inter inter) {
        System.out.println("print inter");
        inter.method();
    }
}

interface Inter {
    void method();
}

class InterImpl implements Inter {

    @Override
    public void method() {
        System.out.println("InterImpl method");
    }
}